﻿$(document).ready(function () {
    (function ($) {
        $.InFieldLabels = function (label, field, options) {
            var base = this; base.$label = $(label); base.$field = $(field); base.$label.data("InFieldLabels", base); base.showing = true; base.init = function () { base.options = $.extend({}, $.InFieldLabels.defaultOptions, options); base.$label.css('position', 'absolute'); var fieldPosition = base.$field.position(); base.$label.css({ 'left': fieldPosition.left, 'top': fieldPosition.top }).addClass(base.options.labelClass); if (base.$field.val() != "") { base.$label.hide(); base.showing = false; }; base.$field.focus(function () { base.fadeOnFocus(); }).blur(function () { base.checkForEmpty(true); }).bind('keydown.infieldlabel', function (e) { base.hideOnChange(e); }).change(function (e) { base.checkForEmpty(); }).bind('onPropertyChange', function () { base.checkForEmpty(); }); };
            base.fadeOnFocus = function () { if (base.showing) { base.setOpacity(base.options.fadeOpacity); }; }; base.setOpacity = function (opacity) { base.$label.stop().animate({ opacity: opacity }, base.options.fadeDuration); base.showing = (opacity > 0.0); };
            base.checkForEmpty = function (blur) {
                if (base.$field.val() == "") {
                    base.prepForShow();
                    base.setOpacity(blur ? 1.0 : base.options.fadeOpacity);
                } else { base.setOpacity(0.0); };
            };
            base.prepForShow = function (e) {
                if (!base.showing) {
                    base.$label.css({ opacity: 0.0 }).show();
                    base.$field.bind('keydown.infieldlabel', function (e) { base.hideOnChange(e); });
                };
            };
            base.hideOnChange = function (e) {
                if ((e.keyCode == 16) || (e.keyCode == 9)) return; if (base.showing) {
                    base.$label.hide();
                    base.showing = false;
                }; base.$field.unbind('keydown.infieldlabel');
            };
            base.init();
        }; $.InFieldLabels.defaultOptions = { fadeOpacity: 0.5, fadeDuration: 300, labelClass: 'infield' };
        $.fn.inFieldLabels = function (options) {
            return this.each(function () {
                var forattr = $(this).attr('for');
                if (!forattr) return; var $field = $("input#" + forattr + "[type='text']," + "input#" + forattr + "[type='password']," + "input#" + forattr + "[type='tel']," + "input#" + for_attr + "[type='email']," + "textarea#" + forattr); if ($field.length == 0) return; (new $.InFieldLabels(this, $field[0], options));
            });
        };
    })(jQuery);


    $("#RegisterUserForm label").inFieldLabels();
});
